<%@page contentType="content-type: application/x-javascript" pageEncoding="UTF-8" %>
<%@taglib prefix="s" uri="/struts-tags" %>
var VELOCIDAD_SLIDE = '400';
var VELOCIDAD_FADE = '250';
var VELOCIDAD_DESLIZAR = '500';
var NOTICIAS_MINIMO = '5';
var CARACTERES_NICK_MINIMO = '5';
var FECHA_INICIO = '15/06/2011';
var NUMERO_CARACTERES = 3;
var MAXIMO_CARACTERES_COMENTARIOS = 500;
var MENSAJE_ERROR_AJAX = '<s:text name="alertas.general.error.ajax" />';




var IDIOMAS = {

	inicio : function() {
		$('#idioma dd').click(function() {
			$('#idioma li a').slideToggle(VELOCIDAD_SLIDE);
		});
	}

}




var FORMULARIO_LOGIN = {
	
	inicio : function() {
		$('#login button').click(function() {
			var clave_plana = $('#contrasenya').val();
			var clave_sha1 = SHA1(clave_plana);
			$('#contrasenya').val('');
			$('#tcontrasenya').val(clave_sha1);
		});
	}

}




var DESCONECTAR_USUARIO = {

    inicio : function() {
    	$('#desconectar').click(function() {
			document.location = '/logout';
		});
    }

}




var paginaPartidos = 0;
var datosPartidos = new Array(2);
datosPartidos['textos'] = new Array();
datosPartidos['textos']['partidos'] = 'partidos';
datosPartidos['textos']['partido'] = 'partido';
datosPartidos['textos']['final'] = 'Final';
datosPartidos['textos']['ficha'] = 'Ver la ficha del equipo';
datosPartidos['textos']['escudo'] = 'Escudo del equipo';
datosPartidos['textos']['historico'] = 'Histórico';
datosPartidos['textos']['superior'] = 'Superior';
datosPartidos['textos']['igual'] = 'Igual';
datosPartidos['textos']['inferior'] = 'Inferior';
datosPartidos['textos']['estadisticas'] = 'Ver las estadísticas del partido';
datosPartidos['textos']['texto_estadisticas'] = 'Estadísticas';
datosPartidos['urls'] = new Array();
datosPartidos['urls']['ficha'] = '/competicion/equipos/';
datosPartidos['urls']['escudo'] = '/img/escudos/47x47/escudo__X_';
datosPartidos['urls']['estadisticas'] = '/competicion/resultados/_X_/_Y_/';


var PARTIDOS_EQUIPO = {
	
	inicio : function() {
		var cajas = new Array($('#resultados-calendario'),$('#dias'));
		cajas[0].find('ul button').click(function() {
			var boton = $(this).parent().attr('id');
			if (boton == 'ver-anteriores')
				paginaPartidos--;
			else
				paginaPartidos++;
			if ($('#navegacion').attr('class').indexOf('torneo-de-usuario') == -1)
				var parametros = 'pagina=' + paginaPartidos;
			else
				var parametros = 'pagina=' + paginaPartidos + '&torneo=' + $('#item-inicio a').attr('href').split('/')[$('#item-inicio a').attr('href').split('/').length-2];
			if ((boton != 'ver-posteriores') || (paginaPartidos <= 0)) {
				CARGANDO.mostrar(cajas[0]);
				$.ajax({
					type: 'POST',
					url: '/xhr/xhr_calendario',
					data: parametros,
					dataType: 'json',
					success: function(datos) {
						if (datos['cabecera']['correcto'] == '1')
							PARTIDOS_EQUIPO.actualizar(datos['datos'],boton,cajas);
						else {
							AVISO.mostrar(MENSAJE_ERROR_AJAX,1,0);
							CARGANDO.ocultar(cajas[0].find('div.cargando'));
							if (boton == 'ver-anteriores')
								paginaPartidos++;
							else
								paginaPartidos--;
						}
					},
					error: function() {
						AVISO.mostrar(MENSAJE_ERROR_AJAX,1,0);
						CARGANDO.ocultar(cajas[0].find('div.cargando'));
						if (boton == 'ver-anteriores')
							paginaPartidos++;
						else
							paginaPartidos--;
					}
				});
			}
		});
	},
	
	actualizar : function(datos,boton,cajas) {
		if (boton == 'ver-anteriores')
			cajas[1].css('left','-530px').empty();
		else
			cajas[1].css('left','530px').empty();
		var cadena = '';
		for (i=0;i<datos.length;i++) {
			if (i<(datos.length-1))
				cadena += '<div class="dia siguiente">\n';
			else
				cadena += '<div class="dia">\n';
			var cadenaPartidos = (datos[i]['cantidad']!=1)?datosPartidos['textos']['partidos']:datosPartidos['textos']['partido'];
			cadena += '<p><strong>' + datos[i]['fecha'] + '</strong> (' + datos[i]['cantidad'] + ' ' + cadenaPartidos +')</p>\n';
			cadena += '<ol>\n';
			for (j=0;j<datos[i]['partidos'].length;j++) {
				if (datos[i]['partidos'][j]['jugado'] == '1')
					cadena += PARTIDOS_EQUIPO.resultados(datos[i]['partidos'][j],datos[i]['dia']);
				else
					cadena += PARTIDOS_EQUIPO.calendario(datos[i]['partidos'][j]);
					
			}
			cadena += '</ol>\n';
			cadena += '</div>\n';
		}
		cajas[1].html(cadena);	
		cajas[0].attr('class','dias-' + datos.length);
		CARGANDO.ocultar(cajas[0].find('div.cargando'));
		cajas[1].animate({'left': '0'}, VELOCIDAD_DESLIZAR, 'swing');
	},
	
	resultados : function(partido,dia) {
		var usuario_casa = partido['equipo_1']['usuario']==1?'class="usuario"':'';
		var usuario_fuera = partido['equipo_2']['usuario']==1?'class="usuario"':'';
		var cadenita;
		cadenita = '<li>\n';
		cadenita += '<dl>\n';
		cadenita += '<dt><a ' + usuario_casa + 'title="' + datosPartidos['textos']['ficha'] + ' ' + partido['equipo_1']['nombre'] + '" href="' + datosPartidos['urls']['ficha'] + partido['equipo_1']['nombreURL'] + '/"><abbr title="' + partido['equipo_1']['nombre'] + '">' + partido['equipo_1']['abreviatura'] + '</abbr> <img src="' + datosPartidos['urls']['escudo'].replace(/_X_/g,partido['equipo_1']['logoimgId']) + '.png" alt="' + datosPartidos['textos']['escudo'] + ' ' + partido['equipo_1']['nombre'] + '" width="47" height="47" /></a> <a ' + usuario_fuera + 'title="' + datosPartidos['textos']['ficha'] + ' ' + partido['equipo_2']['nombre'] + '" href="' + datosPartidos['urls']['ficha'] + partido['equipo_2']['nombreURL'] + '/"><abbr title="' + partido['equipo_2']['nombre'] + '">' + partido['equipo_2']['abreviatura'] + '</abbr> <img src="' + datosPartidos['urls']['escudo'].replace(/_X_/g,partido['equipo_2']['logoimgId']) + '.png" alt="' + datosPartidos['textos']['escudo'] + ' ' + partido['equipo_2']['nombre'] + '" width="47" height="47" /></a></dt>\n';
		cadenita += '<dd class="resultado ' + partido['victoria'] + '"><span>' + partido['resultado'].split('|')[0] + '</span> <span>' + partido['resultado'].split('|')[1] + '</span></dd>\n';
		cadenita += '<dd class="estado">' + datosPartidos['textos']['final'] + '</dd>\n';
		cadenita += '<dd class="acciones"><a title="' + datosPartidos['textos']['estadisticas'] + '" href="' + datosPartidos['urls']['estadisticas'].replace(/_X_/g,partido['id']).replace(/_Y_/g,dia) + partido['equipo_1']['abreviatura'] + '-' + partido['equipo_2']['abreviatura'] + '/">' + datosPartidos['textos']['texto_estadisticas'] + '</a></dd>\n';
		cadenita += '</dl>\n';
		cadenita += '</li>\n';
		return cadenita;
	},
	
	calendario : function(partido) {
		var usuario_casa = partido['equipo_1']['usuario']==1?'class="usuario"':'';
		var usuario_fuera = partido['equipo_2']['usuario']==1?'class="usuario"':'';
		var cadenita;
		cadenita = '<li>\n';
		cadenita += '<dl>\n';
		cadenita += '<dt><a ' + usuario_casa + 'title="' + datosPartidos['textos']['ficha'] + ' ' + partido['equipo_1']['nombre'] + '" href="' + datosPartidos['urls']['ficha'] + partido['equipo_1']['nombreURL'] + '/"><abbr title="' + partido['equipo_1']['nombre'] + '">' + partido['equipo_1']['abreviatura'] + '</abbr> <img src="' + datosPartidos['urls']['escudo'].replace(/_X_/g,partido['equipo_1']['logoimgId']) + '.png" alt="' + datosPartidos['textos']['escudo'] + ' ' + partido['equipo_1']['nombre'] + '" width="47" height="47" /></a> <a ' + usuario_fuera + 'title="' + datosPartidos['textos']['ficha'] + ' ' + partido['equipo_2']['nombre'] + '" href="' + datosPartidos['urls']['ficha'] + partido['equipo_2']['nombreURL'] + '/"><abbr title="' + partido['equipo_2']['nombre'] + '">' + partido['equipo_2']['abreviatura'] + '</abbr> <img src="' + datosPartidos['urls']['escudo'].replace(/_X_/g,partido['equipo_2']['logoimgId']) + '.png" alt="' + datosPartidos['textos']['escudo'] + ' ' + partido['equipo_2']['nombre'] + '" width="47" height="47" /></a></dt>\n';
		cadenita += '<dd class="potencial"><span class="' + partido['potencial'].split('|')[0] + '"><span>' + datosPartidos['textos'][partido['potencial'].split('|')[0]] + '</span></span> <span class="' + partido['potencial'].split('|')[1] +'"><span>' + datosPartidos['textos'][partido['potencial'].split('|')[1]] + '</span></span></dd>\n';
		cadenita += '<dd class="estado">' + partido['hora'] + ' <abbr lang="en" title="World Basketball Club Time">WBCT</abbr></dd>\n';
		cadenita += '<dd class="acciones">' + datosPartidos['textos']['historico'] + ': ' + partido['historico'] + '</dd>\n';
		cadenita += '</dl>\n';
		cadenita += '</li>\n';
		return cadenita;
	}
		
}




var datosRankings = new Array(2);
datosRankings[0] = new Array();
datosRankings[0]['texto'] = 'Ver el ranking global';
datosRankings[0]['url'] = '/competicion/ranking/';
datosRankings[0]['descripcion'] = 'Ranking global';
datosRankings[1] = new Array();
datosRankings[1]['texto'] = 'Ver el ranking de España';
datosRankings[1]['url'] = '/competicion/ranking/espana/';
datosRankings[1]['descripcion'] = 'Ranking España';
var rankingActivo = 0;
		
var RANKINGS = {

	inicio : function() {
		var caja = $('#rankings');
		caja.find('> ul a').unbind('click');
		caja.find('> ul a').click(function() {
			RANKINGS.actualizar(caja,$(this));
			return false;
		});
	},
	
	actualizar : function(caja,cual) {
		caja.find('> table:eq(' + rankingActivo + ')').hide();
		caja.find('> ul strong:eq(0)').replaceWith('<a title="' + datosRankings[rankingActivo]['texto'] + '" href="' + datosRankings[rankingActivo]['url'] + '">' + datosRankings[rankingActivo]['descripcion'] + '</a>');
		rankingActivo = cual.parent().index();
		caja.find('> table:eq(' + rankingActivo + ')').fadeIn(VELOCIDAD_FADE);
		cual.replaceWith('<strong>' + datosRankings[rankingActivo]['descripcion'] + '</strong>');
		RANKINGS.inicio();
	}

}



var datosEquipos = new Array('<s:text name="general.palabras.mostrar" />','<s:text name="general.palabras.ocultar" />');

var EQUIPOS = {

	inicio : function() {
		$('#lista-equipos button').click(function() {
			$(this).toggleClass('oculto');
			$(this).next().slideToggle(VELOCIDAD_SLIDE);
			var indice = ($(this).hasClass('oculto')==true)?1:0;
			var expresion = new RegExp(datosEquipos[indice],'gi');
			$(this).attr('title',$(this).attr('title').replace(expresion,datosEquipos[Math.abs(indice-1)]));
			$(this).html($(this).html().replace(expresion,datosEquipos[Math.abs(indice-1)]));
		});
	}

}




var datosNoticias = new Array(2);
datosNoticias['texto'] = 'Ver la página _X_ de las noticias de Basket Dudes';
datosNoticias['url'] = '/noticias/inicio/_X_/';

var NOTICIAS = {
	
	inicio : function() {
		var caja = $('#noticias');
		caja.find('li a').click(function() {
			CARGANDO.mostrar(caja.find('dd'));
			$.ajax({
				type: 'POST',
				url: '/xhr/xhr_noticias.action',
				data: 'pagina=' + $(this).text(),
				dataType: 'json',
				success: function(datos) {
					if (datos['cabecera']['correcto'] == '1')
						NOTICIAS.actualizar(datos,caja);
					else {
						AVISO.mostrar(MENSAJE_ERROR_AJAX,1,0);
						CARGANDO.ocultar(caja.find('dd div'));
					}
				},
				error: function() {
					AVISO.mostrar(MENSAJE_ERROR_AJAX,1,0);
					CARGANDO.ocultar(caja.find('dd div'));
				}
			});
			return false;
		});
	},
	
	actualizar : function(datos,caja) {
		for (i=0;i<caja.find('dd').length;i++) {
			if (i < datos['datos'].length) {
				caja.find('a:eq(' + (i) + ')').attr('href', datos['datos'][i]['url']).html(datos['datos'][i]['titulo']);
				caja.find('dd:eq(' + (i) + ')').html('<strong>' + datos['datos'][i]['dia'] + '</strong> <abbr title="' + datos['datos'][i]['mes'] + '">' + datos['datos'][i]['mes'].slice(0,3) + '</abbr>-' + datos['datos'][i]['anyo'] + '<div class="cargando"><p><span>Cargando</span></p></div>');
				if (caja.find('dd:eq(' + (i) + ')').css('display') == 'none') {
					caja.find('dt:eq(' + (i) + ')').slideDown(VELOCIDAD_FADE);
					caja.find('dd:eq(' + (i) + ')').slideDown(VELOCIDAD_FADE);
				}
			} else {
				caja.find('dt:eq(' + (i) + ')').slideUp(VELOCIDAD_FADE);
				caja.find('dd:eq(' + (i) + ')').slideUp(VELOCIDAD_FADE);
			}
			CARGANDO.ocultar(caja.find('dd:eq(' + (i) + ') div'));
		}
		caja.find('ol').empty();
		var cadena = '';
		for (i=1;i<=NOTICIAS_MINIMO;i++) {
			if (i<=datos['cabecera']['total']) {
				if (i!=datos['cabecera']['actual'])
					cadena += '<li><a title="' + datosNoticias['texto'].replace(/_X_/g,i) + '" href="' + datosNoticias['url'].replace(/_X_/g,i) + '">' + i + '</a></li>\n';
				else
					cadena += '<li><strong>' + i + '</strong></li>\n';
			} else {
				cadena += '<li>' + i + '</li>\n';
			}
		}
		caja.find('ol').html(cadena);
		NOTICIAS.inicio();		
	}
		
}




var SUGERENCIAS = {

	actualizar : function(datos,contenedor,campo) {
		var cajaSugerencias = contenedor.find('div.sugerencias');
		if (cajaSugerencias.length == 0) {
			contenedor.append(datos);
			cajaSugerencias = contenedor.find('div.sugerencias');
			cajaSugerencias.hide();
			cajaSugerencias.fadeIn(VELOCIDAD_FADE);
		} else {
			cajaSugerencias.replaceWith(datos);
			cajaSugerencias = contenedor.find('div.sugerencias');
		}
		cajaSugerencias.find('a').click(function() {
			campo.val($(this).text());
			SUGERENCIAS.borrar(cajaSugerencias);
			return false;
		});
		cajaSugerencias.find('button').click(function() {
			SUGERENCIAS.borrar(cajaSugerencias);
		});
	},
	
	borrar : function(cual) {
		cual.fadeOut(VELOCIDAD_FADE,function() {
			$(this).remove();
		});		
	}
	
}




var CARGANDO = {

	mostrar : function(donde) {
		$(donde).append('<div class="cargando"><p><span>Cargando</span></p></div>');
		$(donde).find('div.cargando').hide().fadeIn(VELOCIDAD_FADE);
	},
	
	ocultar : function(cual) {
		$(cual).fadeOut(VELOCIDAD_FADE, function() {
			$(this).remove();
		});
	}

}




var AVISO = {

	mostrar : function(mensaje,advertencia,confirmacion,funcion) {
		mensaje = HtmlDecode(mensaje);
		$('body').append('<div id="contenedor-aviso"><div id="aviso"><h4><strong><s:text name="head.alerts" /></strong></h4><p>' + mensaje + '</p><ul><li id="aceptar-accion"><button type="button" title="Aceptar"><span>Aceptar</span></button></li></ul><button id="cerrar-aviso" type="button" title="Cerrar esta ventana"><span>Cerrar</span></button></div></div>');
		if (advertencia == 1)
			$('#aviso').attr('class','advertencia');
		if (confirmacion == 1) {
			$('#aviso ul').append('<li id="cancelar-accion"><button type="button" title="Cancelar"><span>Cancelar</span></button></li>');
			$('#aceptar-accion button').click(function() {
				funcion.apply();
				AVISO.ocultar();
			});
			$('#cancelar-accion button').click(function() {
				AVISO.ocultar();
			});
		} else {
			$('#aceptar-accion button').click(function() {
				AVISO.ocultar();
			});
		}
		$('#contenedor-aviso').hide().css('height',$(document).height()).fadeIn(VELOCIDAD_FADE);
		var alturaVentana = parseInt($(window).height());
		var offset = parseInt($(window).scrollTop());
		posicion = (alturaVentana-141)/2 + offset;
		$('#aviso').css({'top':posicion + 'px','margin-top':'0px'});
		$('#cerrar-aviso').click(function() {
			AVISO.ocultar();
		});
	},
	
	ocultar : function() {
		$('#contenedor-aviso').fadeOut(VELOCIDAD_FADE, function() {
			$(this).remove();
		});
	}

}




var AJAX = {
	
	transformar : function(datos) {
		if ($.browser.msie)
			var expresion = new RegExp('(\n)*(\r)*(\t)*','g');
		else
			var expresion = new RegExp('(\n)*(\r)*(\t)*(\v)*','g');
		datos = datos.replace(expresion,'');
		expresion = new RegExp('"','g');
		datos = datos.replace(expresion,'\\\"');
		expresion = new RegExp('#','g');
		datos = datos.replace(expresion,'"');
		return jQuery.parseJSON(datos);
	}
	
}




$(document).ready(function() {
	//IDIOMAS.inicio();
	FORMULARIO_LOGIN.inicio();
	PARTIDOS_EQUIPO.inicio();
	RANKINGS.inicio();
	EQUIPOS.inicio();
	NOTICIAS.inicio();
	DESCONECTAR_USUARIO.inicio();
	<s:if test="%{hayMensajeAlerta == 1}">
	AVISO.mostrar("<s:property value="mensajeAlerta" />",1,0);
	</s:if>
	$(document).keyup(function (e) {
		if (typeof(e) == 'undefined')
			e = event;
		if (e.keyCode == 27) {
			AVISO.ocultar();
		}
	});
});




jQuery.fn.reset = function () {
	$(this).each (function() {
		this.reset();
	});
}

function HtmlEncode(html) {
	return $('<div/>').text(html).html();
}

function HtmlDecode(text) {
	return $('<div/>').html(text).text();
}


// from: http://www.webtoolkit.info/javascript-sha1.html

/**
*
*  Secure Hash Algorithm (SHA1)
*  http://www.webtoolkit.info/
*
**/
 
function SHA1 (msg) {
 
	function rotate_left(n,s) {
		var t4 = ( n<<s ) | (n>>>(32-s));
		return t4;
	};
 
	function lsb_hex(val) {
		var str="";
		var i;
		var vh;
		var vl;
		for( i=0; i<=6; i+=2 ) {
			vh = (val>>>(i*4+4))&0x0f;
			vl = (val>>>(i*4))&0x0f;
			str += vh.toString(16) + vl.toString(16);
		}
		return str;
	};
 
	function cvt_hex(val) {
		var str="";
		var i;
		var v;
		for( i=7; i>=0; i-- ) {
			v = (val>>>(i*4))&0x0f;
			str += v.toString(16);
		}
		return str;
	};
 
	function Utf8Encode(string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
		for (var n = 0; n < string.length; n++) {
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
		}
		return utftext;
	};
 
	var blockstart;
	var i, j;
	var W = new Array(80);
	var H0 = 0x67452301;
	var H1 = 0xEFCDAB89;
	var H2 = 0x98BADCFE;
	var H3 = 0x10325476;
	var H4 = 0xC3D2E1F0;
	var A, B, C, D, E;
	var temp;
	msg = Utf8Encode(msg);
	var msg_len = msg.length;
	var word_array = new Array();
	for( i=0; i<msg_len-3; i+=4 ) {
		j = msg.charCodeAt(i)<<24 | msg.charCodeAt(i+1)<<16 |
		msg.charCodeAt(i+2)<<8 | msg.charCodeAt(i+3);
		word_array.push( j );
	}
	switch( msg_len % 4 ) {
		case 0:
			i = 0x080000000;
		break;
		case 1:
			i = msg.charCodeAt(msg_len-1)<<24 | 0x0800000;
		break;
 
		case 2:
			i = msg.charCodeAt(msg_len-2)<<24 | msg.charCodeAt(msg_len-1)<<16 | 0x08000;
		break;
 
		case 3:
			i = msg.charCodeAt(msg_len-3)<<24 | msg.charCodeAt(msg_len-2)<<16 | msg.charCodeAt(msg_len-1)<<8	| 0x80;
		break;
	}
 
	word_array.push( i );
	while( (word_array.length % 16) != 14 ) word_array.push( 0 );
	word_array.push( msg_len>>>29 );
	word_array.push( (msg_len<<3)&0x0ffffffff );
	for ( blockstart=0; blockstart<word_array.length; blockstart+=16 ) {
		for( i=0; i<16; i++ ) W[i] = word_array[blockstart+i];
		for( i=16; i<=79; i++ ) W[i] = rotate_left(W[i-3] ^ W[i-8] ^ W[i-14] ^ W[i-16], 1);
		A = H0;
		B = H1;
		C = H2;
		D = H3;
		E = H4;
		for( i= 0; i<=19; i++ ) {
			temp = (rotate_left(A,5) + ((B&C) | (~B&D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
			E = D;
			D = C;
			C = rotate_left(B,30);
			B = A;
			A = temp;
		}
		for( i=20; i<=39; i++ ) {
			temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
			E = D;
			D = C;
			C = rotate_left(B,30);
			B = A;
			A = temp;
		}
		for( i=40; i<=59; i++ ) {
			temp = (rotate_left(A,5) + ((B&C) | (B&D) | (C&D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
			E = D;
			D = C;
			C = rotate_left(B,30);
			B = A;
			A = temp;
		}
		for( i=60; i<=79; i++ ) {
			temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
			E = D;
			D = C;
			C = rotate_left(B,30);
			B = A;
			A = temp;
		}
		H0 = (H0 + A) & 0x0ffffffff;
		H1 = (H1 + B) & 0x0ffffffff;
		H2 = (H2 + C) & 0x0ffffffff;
		H3 = (H3 + D) & 0x0ffffffff;
		H4 = (H4 + E) & 0x0ffffffff;
	}
	var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
	return temp.toLowerCase();
}